/**
 * 供应商-管理供应报盘.<br/>
 *
 * @author fsl-fzh-20151105
 * @author fsl-gongl-20151106
 */
$(function () {

    var defaultPagingObj = {
        total : 0,
        pageSize : 10,
        page : 0
    };

    PAGE_DATA.pagingObj = $.extend(defaultPagingObj, PAGE_DATA.pagingObj);

    // 主要分类：咖啡豆及咖啡相关,等.
    commTemplUtil.initPage();

    // 渲染左侧菜单;
    commTemplUtil.initCommLeftMemu();

    commTemplUtil.setLeftMenu(2);

    // TAB 切换.
    $("#commTabs_1").commNavTabs();

    // 发布供应报盘
    $("#publish_supply_info").attr("href", PAGE_DATA.publishSupplyHref || '');

    //页面首次渲染,
    renderPage();

});

/**
 * 首次渲染页面.<br/>
 *
 *
 * @author fsl-gongl-20151106
 */
function renderPage() {
    $.ajax({
        url : PAGE_CONFIG.requestUrl.supplyManagement,
        type : "get",
        dataType : "json",
        data : {
            page : 1,
            pageSize : PAGE_DATA.pagingObj.pageSize,
            tab : -1 // -1: 全部tab, 0: 报盘管理, 1: 已取消;
        },
        success : function (result) {

            var datas = $.extend([], result.data);
            renderTabs(datas);
        },
        error : function (xhr, status, error) {
            commTemplUtil.showErrorDialog({
                title : "注意！",
                message : "获取数据失败！",
                ok_txt : "确定"
            });
        }
    });
};

/**
 * 渲染tab列表.<br/>
 *
 * @param data {array} tab列表数据.
 *
 * @author fsl-gongl-20151106
 */
function renderTabs(data) {

    for (var i = 0, len = data.length; i < len; i++) {
        renderTabItem(i, data[i]);
    }
};

/**
 * 渲染 单个tab.<br/>
 *
 * @param index {int} tab序号.
 * @param data {array} tab列表数据.
 *
 * @author fsl-gongl-20151106
 */
function renderTabItem(index, data) {

    // 报盘管理
    var tabTempl_0 = _.template($("#item_template_0").html());
    // 已取消
    var tabTempl_1 = _.template($("#item_template_1").html());

    var onClickObj = {
        onClick : function () {
            var clickPage = $(this).attr("data-page");
            var tabObj = $(this).parents(".body-item");
            getTabData(parseInt(clickPage), tabObj);
        }
    };

    var templsObj = {
        0 : tabTempl_0,
        1 : tabTempl_1
    };

    var tabBodyObj = $("#commTabs_body_" + index);
    tabBodyObj.html(templsObj[index](data.detail));

    // 翻页控件.
    var tmpConf = $.extend(data.pagingConfData, onClickObj);
    commTemplUtil.initPaging("#comm-paging-" + index, tmpConf);

    // 给每行数据-"取消"， cancel-btn
    var cancelBtns = tabBodyObj.find(".cancel-btn");

    cancelBtns.on("click", function () {

        var recordId = $(this).attr("record-id");
        var pageVal = $("#comm-paging-" + index).attr("current-page") || "";

        $.ajax({
            url : PAGE_CONFIG.requestUrl.UpdOfferRecordS2,
            type : "put",
            dataType : "json",
            data : {
                id : recordId,
                tab : index, //  -1: 全部tab, 0: 报盘管理, 1: 已取消;
                page : pageVal,
                pageSize : PAGE_DATA.pagingObj.pageSize,
                _token : COMM_DATA.csrfToken
            },
            success : function (result) {
                var datas = $.extend([], result.data);
                renderTabs(datas);
            },
            error : function (xhr, status, error) {
                commTemplUtil.showErrorDialog({
                    title : "注意！",
                    message : "取消 失败！",
                    ok_txt : "确定"
                });
            }
        });

    });

};

/**
 * 翻页时-渲染单个 tab. <br/>
 *
 * @author fsl-gongl-20151106
 */
function getTabData(page, tabObj) {

    var onClickObj = {
        onClick : function () {
            var clickPage = $(this).attr("data-page");
            var tabObj = $(this).parents(".body-item");
            getTabData(parseInt(clickPage), tabObj);
        }
    };

    var tabStatus = tabObj.find(".sel-status").val() || '';
    var tabTempl = _.template($("#item_template_" + tabStatus).html());

    $.ajax({
        url : PAGE_CONFIG.requestUrl.supplyManagement,
        // TODO,  url : "supplyManagement2",
        type : "get",
        dataType : "json",
        data : {
            page : page,
            pageSize : PAGE_DATA.pagingObj.pageSize,
            tab : tabStatus // tabStatus: -1: 全部tab, 0: 报盘管理, 1: 已取消;
        },
        success : function (result) {

            var datas = $.extend({}, result.data);
            renderTabItem(tabStatus, datas);
        },
        error : function (xhr, status, error) {
            commTemplUtil.showErrorDialog({
                title : "注意！",
                message : "获取数据失败！",
                ok_txt : "确定"
            });
        },
    });

};